package com.yida.gwj.config.service;

import java.util.List;
import com.yida.gwj.config.domain.GwjPolicyNotice;
import com.yida.gwj.config.domain.dto.GwjPolicyNoticeDetailDTO;
import com.yida.gwj.config.domain.request.GwjPolicyNoticeChangeStatusRequest;
import com.yida.gwj.config.domain.request.GwjPolicyNoticeEditRequest;
import com.yida.gwj.config.domain.request.GwjPolicyNoticeSaveRequest;

/**
 * 公维金政策公告Service接口
 * 
 * @author ruoyi
 * @date 2023-05-30
 */
public interface IGwjPolicyNoticeService 
{
    /**
     * 查询公维金政策公告
     * 
     * @param id 公维金政策公告主键
     * @return 公维金政策公告
     */
    public GwjPolicyNotice selectGwjPolicyNoticeById(Long id);

    /**
     * 查询公维金政策公告列表
     * 
     * @param gwjPolicyNotice 公维金政策公告
     * @return 公维金政策公告集合
     */
    public List<GwjPolicyNotice> selectGwjPolicyNoticeList(GwjPolicyNotice gwjPolicyNotice);

    /**
     * 新增公维金政策公告
     * 
     * @param gwjPolicyNotice 公维金政策公告
     * @return 结果
     */
    public int insertGwjPolicyNotice(GwjPolicyNotice gwjPolicyNotice);

    /**
     * 修改公维金政策公告
     * 
     * @param gwjPolicyNotice 公维金政策公告
     * @return 结果
     */
    public int updateGwjPolicyNotice(GwjPolicyNotice gwjPolicyNotice);

    /**
     * 批量删除公维金政策公告
     * 
     * @param ids 需要删除的公维金政策公告主键集合
     * @return 结果
     */
    public int deleteGwjPolicyNoticeByIds(Long[] ids);

    /**
     * 删除公维金政策公告信息
     * 
     * @param id 公维金政策公告主键
     * @return 结果
     */
    public int deleteGwjPolicyNoticeById(Long id);

    /**
     * 新增公维金政策公告
     * @param saveRequest 保存参数
     * @return
     */
    Boolean saveGwjPolicyNotice(GwjPolicyNoticeSaveRequest saveRequest);

    /**
     * 修改公维金政策公告
     * @param editRequest 修改参数
     * @return
     */
    Boolean editGwjPolicyNotice(GwjPolicyNoticeEditRequest editRequest);

    /**
     * 查询公维金政策公告详情
     * @param id 主键
     * @return
     */
    GwjPolicyNoticeDetailDTO getDetail(Long id);

    /**
     * 修改发布状态
     * @param changeStatusRequest 发布状态修改参数
     * @return
     */
    Boolean changeStatus(GwjPolicyNoticeChangeStatusRequest changeStatusRequest);
}
